/** @file
 * @brief Global variables.
 */
/* (C) C.D.F. Miller, Heriot-Watt University, March 1984
 *
 *	Permission is hereby given to reproduce or modify this
 *	software freely, provided that this notice be retained,
 *	and that no use be made of the software for commercial
 *	purposes without the express written permission of the
 *	author.
 */

#ifndef _EXTERNS_H_
#define _EXTERNS_H_

#include <list>

/** @brief Delimiter used to insert label references.
 * Defaults to '@'. */
extern char delimiter;

/** @brief 2-char macro used to define a label.
 * Defaults to "L=". */
extern char macroname[];

/** @brief Name of temporary file used across passes. */
extern char tempname[];

/** @brief Printing format for a label reference.
 * Can be changed by "L= format". */
extern const char *def_format;

/** @brief argv[0] */
extern const char *progname;

/** @brief Name of input file */
extern char *filename;

/** @brief Was "-l" given as a command-line option? */
extern int lflag;

/** @brief Was "-s" given as a command-line option? */
extern int sflag;

/** @brief Handle for temporary file used between passes */
extern FILE *tempfile;

/** @brief Current line in input file, so that we can print line where defined for "-l" */
extern long fileline;

/** @brief List of label types */
extern	std::list<Type *> typehead;

#endif
